package com.qf.pojo;

import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.Map;

/**
 * @author Mr.Liu
 * @date 2021/11/27 9:56
 * 封装购物车实体
 */

public class Cart {
    private Double totalPrice = 0.0;//总价钱
    private Map<String,CartItem> map = new LinkedHashMap<>();
    public Collection<CartItem> getCartItems(){
        return map.values();
    }
    public Double getTotalPrice() {
        return totalPrice;
    }

    public void setTotalPrice(Double totalPrice) {
        this.totalPrice = totalPrice;
    }

    public Map<String, CartItem> getCart() {
        return map;
    }

    public void setCart(Map<String, CartItem> cart) {
        this.map = cart;
    }

    /**
     * 添加购物车功能
     */
    public void addCart(CartItem cartItem){
        String pid = cartItem.getProduct().getPid();
        if(map.containsKey(pid)){//判断是否包含
            CartItem proviousCartItem = map.get(pid);
            proviousCartItem.setProductCount(proviousCartItem.getProductCount()+cartItem.getProductCount());//改变商品数量
        }else{
                CartItem newCartItem = map.put(pid, cartItem);
        }
        totalPrice = totalPrice + cartItem.getSubtotalAmount();//改变总价格
    }

    /**
     * 删除购物车功能
     */
    public void deleteCart(String pid){
        CartItem cartItem = map.remove(pid);//删除指定的键
        totalPrice = totalPrice - cartItem.getSubtotalAmount();
    }

    /**
     * 清空购物车功能
     */
    public void clearCart(){
        map.clear();
        totalPrice = 0.0;
    }
}
